package com.itheima.test;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.read.listener.ReadListener;
import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;

// 有个很重要的点 DemoDataListener 不能被spring管理，要每次读取excel都要new,然后里面用到spring可以构造方法传进去
@Slf4j
public class ClueDataListener2 implements ReadListener<TbClueExcelVo> {


    private TBClueService service ;

    // 成功失败条数
    private int successNum=0;
    private int errorNum=0;


    // 如果需要使用Service 可以通过构造函数传递
    public ClueDataListener2(TBClueService service) {
        this.service=service;
    }
    // 从第二行开始读取
    @Override
    public void invoke(TbClueExcelVo data, AnalysisContext context) {
        boolean falg = service.dealData(data);
        if(falg){
            successNum++;
        }else {
            errorNum++;
        }
    }
    /**
     * 所有数据解析完成了 都会来调用
     *
     * @param context
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        log.info("excle 解析完毕");
    }
    // 返回处理结果 成功失败条数, 也可以封装成一个对象 这里简单使用map
    public Map getResult(){
        HashMap map = new HashMap();
        map.put("successNum",successNum);
        map.put("errorNum",errorNum);
        return map;
    }

}
